﻿//DatabaseScripter  Copyright (C) 2011  Philip Wood
//
//This program is free software: you can redistribute it and/or modify
//it under the terms of the GNU General Public License as published by
//the Free Software Foundation, either version 3 of the License, or
//(at your option) any later version.
//
//This program is distributed in the hope that it will be useful,
//but WITHOUT ANY WARRANTY; without even the implied warranty of
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//GNU General Public License for more details.
//
//You should have received a copy of the GNU General Public License
//along with this program.  If not, see <http://www.gnu.org/licenses/>.

using System;
using System.Collections;
using System.Linq;
using System.Text;

using NHibernate.Validator.Engine;
using SharpArch.Core;
using SharpArch.Core.DomainModel;

namespace Bluejam.Utils.DatabaseScripter.Domain.Validators
{
    public class ConfigurationExecutionStrategyValidator: IValidator
    {
        private const string constraintMessage = "This validator may only be used on a Configuration object";

        public bool IsValid(object value, IConstraintValidatorContext constraintValidatorContext)
        {
            var configuration = value as Domain.Values.Configuration;
            Check.Require(configuration != null, constraintMessage);

            return !((configuration.TargetVersion != null) && (configuration.NameOfScriptsToRun.Count > 1));
        }
    }
}
